package pers.cj.pdos.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import pers.cj.pdos.entity.ArrearsWait;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 等待的收款，客户欠的款 Mapper 接口
 * </p>
 *
 * @author chenj
 * @since 2020-03-05
 */
public interface ArrearsWaitMapper extends BaseMapper<ArrearsWait> {
    List<Map> listVo(@Param("companyId") String companyId,
                     @Param("page") Integer page,
                     @Param("limit") Integer limit,
                     @Param("storeId") String storeId,
                     @Param("customTypeId") String customTypeId,
                     @Param("notNeedIn") Boolean notNeedIn,
                     @Param("customNoStop") Boolean customNoStop,
                     @Param("search") String search);
    Long count(@Param("companyId") String companyId,
               @Param("storeId") String storeId,
               @Param("customTypeId") String customTypeId,
               @Param("notNeedIn") Boolean notNeedIn,
               @Param("customNoStop") Boolean customNoStop,
               @Param("search") String search);

    Map getMapByCustom(@Param("customId") String customId);

    List<Map> listDetail(@Param("customId") String customId,
                         @Param("page") Integer page,
                         @Param("limit") Integer limit,
                         @Param("close") Boolean close,
                         @Param("search") String search,
                         @Param("no") String no,
                         @Param("remark") String remark,
                         @Param("userId") String userId,
                         @Param("date1") Date date1,
                         @Param("date2") Date date2,
                         @Param("flag") Integer flag,
                         @Param("storeId") String storeId);

    Long countDetail(@Param("customId") String customId,
                     @Param("close") Boolean close,
                     @Param("search") String search,
                     @Param("no") String no,
                     @Param("remark") String remark,
                     @Param("userId") String userId,
                     @Param("date1") Date date1,
                     @Param("date2") Date date2,
                     @Param("flag") Integer flag,
                     @Param("storeId") String storeId);

    /**
     * 获取总应收款
     * @param companyId
     * @return
     */
    BigDecimal getTotalAmount(@Param("companyId") String companyId);
}
